<?php

require_once 'Banco.php';
require_once 'Model/Noticia.php';
require_once 'Model/Empresa.php';

class DAONoticia extends Banco{
    
    public function getNoticias() {
        $noticias = array();
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT NOT_CODIGO, NOT_CODEMPRESA, NOT_TITULO, NOT_NOTICIA, NOT_HORARIO, NOT_VISIVEL FROM TB_NOTICIAS ORDER BY NOT_HORARIO DESC;")) {
            $sql->execute();
            $sql->bind_result($codigo, $empresa, $titulo, $conteudo, $horario, $visivel);
            while ($sql->fetch()) {
                $noticia = new Noticia();
                $noticia->setCodigo($codigo);
                $noticia->setConteudo($conteudo);
                $noticia->setEmpresa($empresa);
                $noticia->setHorario($horario);
                $noticia->setTitulo($titulo);
                $noticia->setVisivel($visivel);
                $noticias[]=(object)$noticia;
            }
            $sql->close();
        }
        $banco->close();
        return $noticias;
    }
    
    public function getNoticiasByEmpresa(Empresa $empresa,$inicio,$fim) {
        $noticias = array();
        $codigoEmpresa = $empresa->getCodigo();
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT NOT_CODIGO, NOT_CODEMPRESA, NOT_TITULO, NOT_NOTICIA, NOT_HORARIO, NOT_VISIVEL FROM TB_NOTICIAS WHERE NOT_CODEMPRESA=? ORDER BY NOT_HORARIO DESC LIMIT $inicio , $fim;")) {
            $sql->bind_param('i',$codigoEmpresa);
            $sql->execute();
            $sql->bind_result($codigo, $emp, $titulo, $conteudo, $horario, $visivel);
            while ($sql->fetch()) {
                $noticia = new Noticia();
                $noticia->setCodigo($codigo);
                $noticia->setConteudo($conteudo);
                $noticia->setEmpresa($emp);
                $noticia->setHorario($horario);
                $noticia->setTitulo($titulo);
                $noticia->setVisivel($visivel);
                $noticias[]=(object)$noticia;
            }
            $sql->close();
        }
        $banco->close();
        return $noticias;
    }
    
    public function addNoticia(Noticia $noticia) {
        $conteudo=$noticia->getConteudo();
        $titulo=$noticia->getTitulo();
        if(is_a($noticia->getEmpresa(), 'Empresa')){
            $empresa=$noticia->getEmpresa()->getCodigo();
        }

        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("INSERT INTO TB_NOTICIAS VALUES(default, ?, ?, ?, NOW(), default);")) {
            $sql->bind_param('iss',$empresa, $titulo, $conteudo);
            $sql->execute();
            $sql->close();
        }
        $banco->close();
    }
    
}

?>
